cf848af4addf33f0aae9c86149fc0cfd1fee5c82,src/main/java/jenkins/branch/MultiBranchProject.java,SCMHeadObserverImpl,observe,#SCMHead#SCMRevision#,1580

Before Change


                        if (pollingResult.hasChanges()) {
                            listener.getLogger().format("Changes detected: %s%n", rawName);
                            needSave = true;
                            scheduleBuild(_factory, project, revision, listener, rawName, causeFactory.create(),
                                    revisionActions);
                        } else {
                            listener.getLogger().format("No changes detected: %s%n", rawName);
                        }

After Change


                            revision
                    );
                    needSave = true;
                    if (isAutomaticBuild(source, head)) {
                        scheduleBuild(
                                _factory,
                                project,
                                revision,
                                listener,
                                rawName,
                                causeFactory.create(),
                                revisionActions
                        );
                    } else {
                        listener.getLogger().format("No automatic builds for %s%n", rawName);
                    }
                } else if (revision.isDeterministic()) {
                    SCMRevision lastBuild = _factory.getRevision(project);
                    if (!revision.equals(lastBuild)) {
                        listener.getLogger().format("Changes detected: %s (%s → %s)%n", rawName, lastBuild, revision);
                        needSave = true;
                        if (isAutomaticBuild(source, head)) {
                            scheduleBuild(
                                    _factory,
                                    project,
                                    revision,
                                    listener,
                                    rawName,
                                    causeFactory.create(),
                                    revisionActions
                            );
                        } else {
                            listener.getLogger().format("No automatic builds for %s%n", rawName);
                        }
                    } else {
                        listener.getLogger().format("No changes detected: %s (still at %s)%n", rawName, revision);
                    }
                } else {
                    // fall back to polling when we have a non-deterministic revision/hash.
                    SCMTriggerItem scmProject = SCMTriggerItem.SCMTriggerItems.asSCMTriggerItem(project);
                    if (scmProject != null) {
                        PollingResult pollingResult = scmProject.poll(listener);
                        if (pollingResult.hasChanges()) {
                            listener.getLogger().format("Changes detected: %s%n", rawName);
                            needSave = true;
                            if (isAutomaticBuild(source, head)) {
                                scheduleBuild(
                                        _factory,
                                        project,
                                        revision,
                                        listener,
                                        rawName,
                                        causeFactory.create(),
                                        revisionActions
                                );
                            } else {
                                listener.getLogger().format("No automatic builds for %s%n", rawName);
                            }